//Listing 12.6 Hiding methods
#include <iostream>
using std::cout;

class Mammal {
  public:
    void Move() const { cout << "Mammal mvoe oen step.\n"; }
    void Move(int distance) const {
      cout << "Mammal move ";
      cout << distance << " steps.\n";
    }

  protected:
    int itsAge;
    int itsWeight;  
};

class Dog : public Mammal {
  public:
    // You might receive a warning that you are hiding a function!
    void Move() const { cout << "Dog move 5 steps.\n"; }
};

int main(void) {
  Mammal bigAnimal;
  Dog Fido;
  bigAnimal.Move();
  Fido.Move();
  // Fido.Move(10);  
}